/*
给定一个非负整数 numRows，生成杨辉三角的前 numRows 行。



在杨辉三角中，每个数是它左上方和右上方的数的和。

示例:

输入: 5
输出:
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/pascals-triangle
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
*/

//town 2020.8.14
class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        vector<vector<int>> dp;
        for(int i=0;i<numRows;i++){
            vector<int> tmp(i+1,1);
            if(i>1){
                for(int j=1;j<i;j++){
                    tmp[j]=dp[i-1][j-1]+dp[i-1][j];
                }
            }
            dp.push_back(tmp);
        }
        return dp;
    }
};